package co.edu.uniandes.ecos.itera.tsp.mundo;

import co.edu.uniandes.ecos.itera.tsp.anotaciones.Avance;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Interrupciones;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Loc;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.LogT;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.LogInt;
import co.edu.uniandes.ecos.itera.tsp.anotaciones.Tiempos;

import java.io.Serializable;

/**
 * Identifica a un desarrollador involucrado en un proyecto
 */
@LogInt(date="2011-03-13", intId=1, min=5, taskId=3)
@Tiempos({
	@LogT(date="2011-03-13", min=12, taskId=3),
	@LogT(date="2011-03-19", min=13, taskId=13)
})
@Interrupciones({
	@LogInt(date="2011-03-19", intId = 7, min=7, taskId=13)
})
@Avance(taskId=3, termino='S')

public class Desarrollador implements Serializable
{
	/**
	 * identificador unico de este objeto
	 */
	@Avance(taskId=13, termino='S')
	private static final long serialVersionUID = -1350758943599035693L;

	/**
	 * Codigo del Desarrollador
	 */
	private int codigo;
	
	/**
	 * Nombre del Desarrollador
	 */
	private String nombre;
	
	/**
	 * Actualiza el codigo del Desarrollador
	 * @param codigo Codigo a Actualizar
	 */
	@Loc(size=1, taskId=3)
	public void setCodigo(int codigo) 
	{
		this.codigo = codigo;
	}
	
	/**
	 * Consulta el codigo de este desarrollador
	 * @return Codigo del desarrollador
	 */
	@Loc(size=1, taskId=3)
	public int getCodigo() 
	{
		return codigo;
	}
	
	/**
	 * Establece el nombre del desarrollador
	 * @param nombre Nombre a establecer
	 */
	@Loc(size=1, taskId=3)
	public void setNombre(String nombre) 
	{
		this.nombre = nombre;
	}
	
	/**
	 * Consulta el nombre de este desarrollador
	 * @return Nombre del desarrollador
	 */
	@Loc(size=1, taskId=3)
	public String getNombre() 
	{
		return nombre;
	}
	
	@Override
	public String toString()
	{
		return String.format("%s", this.nombre);
	}
	
}
